Within the conventional technology, an implementation of a B+ tree data structure can be used for creating some type of indices. For example, a larger virtual address space can be mapped to a relatively smaller physical address space. In this case, the key-value pairs in the B+ tree data structure are virtual to physical address mappings (or translations). In addition, these translations are stored in B+ tree format in order to obtain search efficiency and to keep metadata (translations) size proportional to the physical storage. There is a requirement that such B+ tree data structures should satisfy ACID (atomicity, consistency, isolation, durability) properties.
More specifically, in order to guarantee ACID properties, an implementation of the B+ tree data structure requires updates to the tree to go through a transaction mechanism. For example, the transaction mechanism involves writing to a transaction log and then replaying the transaction log. However, the transactions are costly to performance in terms of the number of inputs and outputs (I/Os) and contention that they cause for the transaction log area.